package com.softer.wxzj.service;

import com.github.pagehelper.PageInfo;
import com.softer.wxzj.common.entity.CommonResult;
import com.softer.wxzj.common.entity.Page;
import com.softer.wxzj.entity.BaseBuildInfo;
import com.softer.wxzj.entity.BaseRegionInfo;
import com.softer.wxzj.entity.MaintenanceEquipment;
import com.softer.wxzj.entity.TempEquipment;

import java.util.List;

/**
 * @author Gong Zhiyang
 * @date 2019/7/16
 */
public interface MaintenanceEquipmentService {
    /**
     * 新增维修设备
     *
     * @param maintenanceEquipment 维修设备
     * @return 新增结果
     */
    CommonResult add(MaintenanceEquipment maintenanceEquipment);

    /**
     * 修改维修设备
     *
     * @param maintenanceEquipment 维修设备
     * @return 修改结果
     */
    CommonResult update(MaintenanceEquipment maintenanceEquipment);

    /**
     * 查询详情
     *
     * @param id ID
     * @param arcType 图档大类
     * @return 维修设备详情
     */
    MaintenanceEquipment getInfo(String id, String arcType);

    /**
     * 查刪除维修设备
     *
     * @param id ID
     * @return 删除结果
     */
    CommonResult delete(String id);

    /**
     * 竣工
     *
     * @param id   自然幢ID
     * @param date 竣工日期
     * @return 操作结果
     */
    CommonResult finish(String id, String date);

    /**
     * 维修对象维护列表
     *
     * @param page           分页实体
     * @param baseRegionInfo 查询实体
     * @return 小区列表
     */
    PageInfo<BaseRegionInfo> getRegionList(Page page, BaseRegionInfo baseRegionInfo);

    /**
     * 维修对象维护列表
     *
     * @param page          分页实体
     * @param baseBuildInfo 查询实体
     * @return 自然幢列表
     */
    PageInfo<BaseBuildInfo> getBuildList(Page page, BaseBuildInfo baseBuildInfo);

    /**
     * 根据自然幢ID查询公共设施
     *
     * @param page          分页实体
     * @param tempEquipment 查询实体
     * @return 公共设施列表
     */
    PageInfo<TempEquipment> getEquipmentList(Page page, TempEquipment tempEquipment);

    /**
     * 根据维修对象类别查询维修对象列表
     *
     * @param id 维修对象类别
     * @return 维修对象列表
     */
    List<TempEquipment> getEquipmentListByObjectId(String id);

    /**
     * 启用、停用维修设备
     *
     * @param maintenanceEquipment id    设备ID
     *                             state 状态（0停用，1启用）
     * @return 操作结果
     */
    CommonResult enable(MaintenanceEquipment maintenanceEquipment);

    MaintenanceEquipment getInfoById(String id);
    /**
     * 外网查询查询维修对象列表
     *
     * @param page          分页实体
     * @param tempEquipment 查询实体
     * @return 维修对象列表
     */
    PageInfo<TempEquipment> getEquipmentListByOperNo(Page page, TempEquipment tempEquipment);
}
